package com.xbongbong.admin.pojo.vo;

import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.pro.statistic.result.pojo.vo.ResultDataChartVO;
import com.xbongbong.pro.statistic.result.pojo.vo.ResultDataSeriesChartVO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;

/**
 * @auther: xingxing.xiao
 * @date: 2020/3/21 021 13:39
 */
@Getter
@Setter
@ToString
public class MirrorResultChartVO extends BaseVO {

    private static final long serialVersionUID = -4416967189476719720L;
    /**
     * 图表名称
     */
    private String name;
    /**
     * 指标/图表图标
     */
    private String icon;
    /**
     * 颜色，16进制色，如 #FF0000
     */
    private String color;
    /**
     * 报表类型，用枚举维护
     */
    protected Integer chartType;
    /**
     * 单位
     */
    private String unit;
    /**
     * 分类：["世纪联华","华润万家","苏宁易购","国美"]
     * 对于自定义指标，直接用chartEntity实体的chartClassify进行处理；
     * 对于系统指标，每个图的x轴可能不一致，需要在每个统计方法内进行封装：
     * （1）系统的折线图、柱状图大部分都是时间维度
     * （2）部分柱状是排名（客户名等）
     * （3）饼图是字符串（行业、阶段名等）
     */
    private List<String> xAxis;
    /**
     * 因为feign调用导致 xAxis 和 xAxisKeys 一直被赋不了值，此处另写两个参数做备用
     */
    private List<String> backXaxis;
    private List<String> backXaxisKeys;
    /**
     * 系列：["彩电","冰箱","洗衣机","收音机","手机","耳机"]
     * 对于自定义指标，直接用chartEntity实体的chartSeries进行处理；
     * 对于系统指标，每个图的legend不一致，有的图没有legend，有的图有多个legend，注意区分，所以需要在每个统计方法内处理
     */
    private List<String> legend;

    /**
     * 分类key存储
     */
    private List<String> xAxisKeys;
    /**
     * 系列key存储
     */
    private List<String> legendKeys;

    /**
     * true代表有总数，且总数值为value；false则无右侧总数
     */
    private Boolean totalFlag;
    /**
     * 单个值
     */
    private String value;
    /**
     * 穿透的条件，该值不传或为空字符串时，则代表不能穿透
     */
    private String through;
    /**
     * 单个值的标题（如图表中心图右侧的总数）
     */
    private String valueTitle;
    /**
     * 图渲染需要的值，[{"name":"","value":[]}]
     * 此种data（内部value是数组）格式，对应 折线、面积、柱形图、叠加图、雷达
     */
    private List<ResultDataChartVO> data;
    /**
     * 图渲染需要的值，[{"name":"","value":""}]
     * 此种格式（内部value是值）对应 饼图、环图、仪表盘、地图、漏斗
     */
    private List<ResultDataSeriesChartVO> dataSeries;
}
